package com.bw.module_video_detail.test_exoplayer

import android.content.Context
import androidx.media3.common.util.UnstableApi
import androidx.media3.datasource.cache.LeastRecentlyUsedCacheEvictor
import androidx.media3.datasource.cache.SimpleCache
import java.io.File

/**
 * @author yaotianxue
 * @description 磁盘缓存
 * @date 2025/6/26
 */
object VideoCacheManager {
    private var cache: SimpleCache? = null

    // 获取缓存实例
    fun getCache(context: Context): SimpleCache {
        if (cache == null) {
            // 创建缓存目录
            val cacheDir = File(context.cacheDir, "exo_video_cache")
            if (!cacheDir.exists()) cacheDir.mkdirs()

            // 配置缓存策略：100MB大小，LRU淘汰策略
            val cacheEvictor = LeastRecentlyUsedCacheEvictor(100 * 1024 * 1024)
            cache = SimpleCache(cacheDir, cacheEvictor)
        }
        return cache!!
    }

    // 清除缓存
    fun clearCache(context: Context) {
        cache?.release()
        cache = null
    }
}